require('./init');

// session 会 大量占用 服务端 资源
// 请求是没有状态的
// cookies  的原理就是 让请求有了状态

// uuid 就是 sessionid 全球 唯一id 也叫sid  根据时间戳 什么的 生成的

// 直接用 cookie 存token的这种 作为登陆验证  方式 缺点是 容易被窃取 改动

// session 作为登陆验证的原理 ：
// 1. 基本原理 服务器会 检查每个请求 发送的cookies  如果  cookies  里面没有 sessionid 会给响应体里面 设置 生成并设置 sessionid 作为 cookies返回回去
// 2. 登陆的接口 把登陆信息 通过sessionid 为key value为 登陆信息 存在 内存或者 redis数据库里面 然后 把sessionid  设置到 cookies里面 浏览器保存在本地
// 3. 后面请求的接口 带上 cookie 值为 sessionid   服务端 会根据这个 sessionid  去 查有没有登陆信息 有则验证登陆 通过 无则失败 提示未登陆

// session 中间件做的事 1. 生产sessionid  2. 自动将sessionid 作为key value为 对象 存在内存
// 3. 将 res.session  = sessionid 对应的 value 让我们方便 设置 值
// 4. 下次请求来的时候 如果 cookies里面有sessionid  将 req.session 设置为 sessionid  对应的value 方便我们 取值

// 1 单用 cookie 作为登陆验证的方式   cookie里面直接保存 用户的信息 虽然加密了 但容易被窃取 修改

// 2. 用session + cookie 作为登陆验证的方式 缺点 占用服务器资源  成本高  session 信息是存在服务端的 或数据库里的
